TimesTen表とASCIIファイル間でデータをコピーします。ttBulkCpには、次の2つのモードがあります。
UNIXでは、このユーティリティはTimesTen Data Manager DSNでサポートされます。クライアントDSNでは、ttBulkCpCSユーティリティを使用します。
ttBulkCp [-h | -help | -? | -helpfull] ttBulkCp [-V | -version] ttBulkCp -i [-cp numTrans | final] [-d errLevel] [-e errorFile] [-m maxErrs] [-sc] [-t errLevel] [-u errLevel] [-v verbosity] [-xp numRows | rollback] [-Cc | -Cnone] [-tformat timeFormat] [-tsformat timeStampFormat] [-dformat | -D dateFormat] [-F firstRow] [-L lastRow] [-N ncharEncoding] [-Q 0|1] [-S errLevel] {-connStr connection_string | DSN} [owner.]tableName [dataFile ...] ttBulkCp -o [-sc] [-v verbosity] [-A 0|1] [-Cc | -Cnone] [-tformat timeFormat] [-tsformat timeStampFormat] [-dformat | -D dateFormat] [-N ncharEncoding] [-noForceSerializable | -forceSerializable] [-tsprec precision] [-Q 0|1] {-connStr connection_string | DSN} [owner.]tableName [dataFile]
ttBulkCpには次のオプションがあります。
| -Cnone は出力ファイルでのコメントの使用を無効にします。 -C c は、デフォルトのコメント文字をcに設定します。デフォルトのコメント文字を指定しない場合、シャープ記号(#)が使用されます。-C オプションの値は、\t (タブ)、または~ ! @ # % ^ & * ( ) = : ; | < > ? , / のいずれかの文字をとります。 このオプションは
COMMENTCHAR ファイル属性を上書きします。
|
||
connection_string | データ・ストア名、サーバー名とDSN(必要に応じて)および関連する接続属性を含むODBC接続文字列。 |
||
DSN | コピーするデータ・ストアのODBCデータソース名を指定します。 |
||
-D | -dformat dateFormat | 日付書式を設定します。指定できる固定値については、「日付、時刻およびタイムスタンプの値」を参照してください。このオプションは DFORMAT ファイル属性を上書きします。デフォルトはODBC です。-tformatおよび-tsformatも参照してください。 |
||
dataFile | コピーイン・モードでは、表に挿入する行を含む1つ以上のASCIIファイルのパス名を指定します。ファイルを指定しないと、標準入力が使用されます。単一のハイフン(-)は標準入力を意味するものと理解されます。 コピーアウト・モードでは、行のコピー先のファイルのパス名を指定します。ファイルを指定しないと、標準出力が使用されます。単一のハイフン(-)は標準出力を意味するものと理解されます。 |
||
-? | 使用方法についての短いメッセージを出力して終了します。 |
||
-forceSerializable -noForceSerializable |
-forceSerializableオプションは、DSNまたは接続文字列の設定にかかわらず、ttBulkCpでシリアライズ可能な分離が使用されることを示します。これは、デフォルトの動作です。 -noForceSerializableは、DSNまたは接続文字列の分離レベルがttBulkCpで使用されることを示します。 -noForceSerializableオプションを指定した場合に、DSNまたは接続文字列にシリアライズ可能でない分離モードが示されていると、次のような警告が出力に含まれます。 Warning: This output was produced using a non-serializable isolation level. It may therefore not reflect a transaction-consistent state of the table. 分離モードの詳細は、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のトランザクションの分離レベルに関する説明を参照してください。 |
||
-helpfull | 使用方法についての長いメッセージを出力して終了します。 |
||
| コピーイン・モードを選択します。 |
||
| レポートするエラーの最大数。デフォルトは10です。関連エラーがいくつか追加されてレポートされる場合もあります。0の場合、ユーティリティは接続のみを行って戻ります。 |
||
-N ncharEncoding | NCHAR型の入力および出力に使用する文字エンコードを指定します。有効な値はLOCALE(デフォルト)、UTF8またはASCIIです。LOCALEの場合、ユーザーのOSセッションのキャラクタ・セットの設定に基づいて、入力および出力のエンコードが設定されます。 |
||
| コピーアウト・モードを選択します。 |
||
owner | 保存またはロードする表の所有者を指定します。ownerを省略すると、TimesTenは、まずユーザー名で、次にユーザー名 SYS で表を検索します。このパラメータでは大/小文字は区別されません。 |
||
| 文字列値を二重引用符で囲むかどうかを示します。 0 : 文字列を引用符で囲まないことを示します。 1 : (デフォルト)文字列を引用符で囲むことを示します。 このオプションは QUOTES ファイル属性を上書きします。 |
||
| デフォルトのフィールド区切り文字をcに設定します。デフォルトのフィールド区切り文字を指定しない場合、カンマ(,)が使用されます。 -s オプションの値は、\t (タブ)、または~ ! @ # % ^ & * ( ) = : ; | < > ? , / のいずれかの文字をとります。 このオプションは
FSEP ファイル属性を上書きします。
|
||
tableName | 保存またはロードする表の名前を指定します。このパラメータでは大/小文字は区別されません。 |
||
tformat timeFormat | 時刻書式を設定します。指定できる値は、「日付、時刻およびタイムスタンプの値」を参照してください。デフォルト値は ODBC です。このオプションはTSFORMAT ファイル属性を上書きします。-D | -dformatおよび-tsformatも参照してください。 |
||
-tsformat timestampFormat | タイムスタンプ書式を設定します。指定できる固定値は、「日付、時刻およびタイムスタンプの値」を参照してください。デフォルト値は DF*TF+FF です。これは、日付書式、時間書式および小数秒を連結したものです。このオプションはTFORMAT ファイル属性を上書きします。-D | -dformatおよび-tformatも参照してください。 |
||
| ttBulkCpのリリース番号を出力し、終了します。 |
||
| 冗長レベルを設定します。 0 : サマリーを抑制します。 1 : (デフォルト)完了時にコピーした行のサマリーを出力します。 |
次のオプションは、コピーアウト・モードでのみ使用できます。
次のオプションは、コピーイン・モードでのみ使用できます。
| コピーインのチェックポイント・ポリシーを設定します。0の値は、コピー全体が完了した後にも、ttBulkCpはデータ・ストアのチェックポイントを行わないことを示します。0以外の値は、numTransトランザクションごとに、さらにコピー全体が完了した後に、ttBulkCpがデータ・ストアのチェックポイントを行うことを示します。 final の値は、コピー全体が完了した場合にのみttBulkCpがデータ・ストアのチェックポイントを行うことを示します。デフォルト値は0です。定期的なコミットも有効になっている場合にのみ、定期的なチェックポイントを有効にできます。-xp オプションを参照してください。 |
| デフォルトでは、ttBulkCpは、一意列や索引での制約違反が原因で拒否される行を、エラーとはみなしません。 -d error- : 制約違反をエラーとみなすことを指定します。重複行は、maxErrs(-m を参照)に対してカウントされ、エラー・ファイル(-e を参照)に記録されます。 -d warn- : ttBulkCpは問題の行をエラー・ファイルにコピーするが、エラーとしてはカウントしないことを指定します。 -d ignore- : (デフォルト)ttBulkCpは重複行を暗黙的に無視することを指定します。 -d の設定にかかわらず、重複行は表に挿入されません。 |
| エラーのためにTimesTen表にコピーできない行に関する情報を、ttBulkCpが記録するファイルの名前を示します。このようなエラーには、解析エラー、型変換エラーおよび制約違反が含まれます。errFileのデフォルト値は stderr です。エラー・ファイルの書式は入力ファイルの書式(「データファイルの書式」を参照)と同じであるため、エラー・ファイルのエラーを修正して、その後のttBulkCpの実行時に、修正したエラー・ファイルを入力ファイルとして使用することもできます。 |
| コピーする最初の行の番号を示します。このオプションを -L などとともに使用して、TimesTen表に行のサブセットをコピーできます。行には、1から始まる番号が付けられます。複数の入力ファイルを指定した場合、行には、すべてのファイルをとおした連続番号が付けられます。デフォルト値は1です。 |
| コピーする最後の行の番号を示します。 -F の説明を参照してください。0の値は最後の入力ファイルの最後の行を指定します。デフォルト値は0です。 |
| デフォルトでは、ttBulkCpによってその最大スケールを超える値が検出されると、エラーが発行されます。このエラーは、スケールがその列の最大スケールを超える10進値、または小数秒が6桁を超える(つまり、サブマイクロ秒の粒度)TIMESTAMP値に対して発行されます。 -S error : (デフォルト)ttBulkCpがその最大スケールを超える値を含む行を表に挿入せず、エラーをエラー・ファイルに記録することを指定します。 -S warn : ttBulkCpが行を表に挿入する前に、その最大スケールまで値の右側を切り捨て、警告をエラー・ファイルに記録することを指定します。 -S ignore : ttBulkCpが行を表に挿入する前に、その最大スケールまで値の右側を暗黙的に切り捨てることを指定します。 |
-t warn -t ignore | デフォルトでは、CHAR、VARCHAR2、NCHAR、NVARCHAR2、BINARYまたはVARBINARYの値がその最大列幅を超えている場合、ttBulkCpによってエラーが発行されます。 -t error : (デフォルト)長い文字列やbinary属性を含む行はTimesTen表に挿入されず、エラーがエラー・ファイルに記録されることを指定します。 -t warn : 長い文字列やbinary属性は表に挿入される前に最大列長に切り捨てられるが、警告がエラー・ファイルに記録されることを指定します。 -t ignore : 長い文字列やbinary属性は、表に挿入される前に最大列長に暗黙的に切り捨てられることを指定します。 |
-u error -u warn -u ignore | デフォルトでは、real、floatまたはdouble属性のアンダフロー時に、ttBulkCpはエラーを発行します。アンダフローは、浮動小数点数が非常に小さく、0(ゼロ)に切り捨てられる場合に発生します。 -u error : (デフォルト)アンダーフローしたreal、floatまたはdouble値を含む行はTimesTen表に挿入されず、エラーがエラー・ファイルに記録されることを指定します。 -u warn : アンダフローしたreal、floatまたはdouble属性に0.0が挿入されるが、警告がエラー・ファイルに記録されることを指定します。 -u ignore : アンダフローしたreal、floatまたはdouble属性に、暗黙的に0.0が挿入されることを指定します。 |
| ロードのトランザクション・ポリシーを設定します。0の値は、ttBulkCpがロード全体を単一のトランザクションとして実行し、ロードの成功、失敗にかかわらず、そのトランザクションをコミットすることを示します。 rollback の値は、ttBulkCpがロード全体を単一のトランザクションとして実行し、ロードが失敗した場合には、そのトランザクションをロールバックすることを示します。0(ゼロ)以外の値は、ttBulkCpがnumRowsの挿入に成功するたびにコミットすることを示します。デフォルト値は1000です。 -xp オプションは、-cp オプションとともに使用して、データ・ストアの定期的なチェックポイントを有効にできます。 |
ttBulkCp入力ファイルの行は、空白行、コメント行、属性行またはデータ行のいずれかです。
-C
コマンドライン・オプションまたはCOMMENTCHARファイル属性(「属性行の書式」を参照)で上書きできます。コメント文字は行の先頭文字である必要があります。コメント行はttBulkCpによって無視されます。データ行の最後にあるコメントは、サポートされません。##ttBulkCp
で始まります。属性行の完全な構文は、「属性行の書式」を参照してください。属性行は、データファイルの任意の場所に記述できます。-s
コマンドライン・オプションまたはFSEPファイル属性によって上書きできます。データ行の完全な構文は、「データ行の書式」を参照してください。属性行の書式は、次のとおりです。
##ttBulkCp[:attribute=value]...
コメント文字が#
ではない場合でも、属性行は必ず10文字の文字列##ttBulkCp
で始まります。この文字列の後には、0(ゼロ)または1つ以上のファイル属性設定を指定できます。それぞれの属性の前には、コロンを付けます。
属性設定が有効なのは、入力ファイルの終わりまで、または同じ入力ファイルで他の属性行によって変更されるまでです。属性行で省略されているファイル属性の値は、変更されません。
コマンドライン・オプションは、ttBulkCpでサポートされるファイル属性の値よりも優先されます。ttBulkCpでサポートされるファイル属性は、次のとおりです。
VERSION
: ファイルで使用されるファイル形式のバージョンを指定します(major.
minorとして表されます)。サポートされるバージョンは1.0のみです。 FSEP
: ファイルで使用されるフィールド・セパレータ文字を指定します。フィールド・セパレータは、\t
(タブ)、または~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /
のいずれかの文字に設定できます。 このオプションは、-s
コマンドライン・オプションで上書きされます。
QUOTES
: ファイル内の文字列値が二重引用符で囲まれるかどうかを示します。-Q
オプションで上書きされます。COMMENTCHAR
: ファイルで使用されるコメント文字を指定します。コメント文字は、\t(タブ)、または~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /
のいずれかの文字に設定できます。 コメント文字は、データファイルでのコメントの使用を無効にする、値none
に設定することもできます。
DFORMAT
: 日付書式を設定します。指定できる値は、「日付、時刻およびタイムスタンプの値」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-D/-dformat
コマンドライン・オプションで上書きされます。TFORMAT
およびTSFORMAT
も参照してください。NCHARENCODING
: NCHARとNVARCHAR2データ型に使用するエンコードを示します。値はASCIIまたはUTF-8です。 TFORMAT
: 時刻書式を設定します。指定できる値は、「日付、時刻およびタイムスタンプの値」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-tformat
コマンドライン・オプションで上書きされます。DFORMAT
およびTSFORMAT
に関する項も参照してください。TSFORMAT
: タイムスタンプ書式を設定します。指定できる値は、「日付、時刻およびタイムスタンプの値」を参照してください。ユーザー定義の書式が使用されている場合は、一重引用符で囲む必要があります。この値は-tsformat
コマンドライン・オプションで上書きされます。DFORMAT
およびTFORMAT
に関する項も参照してください。 次のヘッダー行はフィールド・セパレータ文字を$
に設定し、文字列を引用符で囲むことを無効にします。
##ttBulkCp:FSEP=$:QUOTES=0
次のヘッダー行はコメントを無効にし、日付書式をOracle書式に設定します。
##ttBulkCp:COMMENTCHAR=none:DFORMAT=Oracle
次のヘッダー行は、日付書式をカスタム書式に設定します。
##ttBulkCp:DFORMAT='Mon DD, YYYY'
データ行には、コピーされる表の行データが含まれます。各データ行は表の行に対応します。行は複数の入力ファイル行にまたがることはできません。データ行は、フィールド・セパレータ文字によって区切られる、列値のリストで構成されます。フィールド・セパレータの前後に、不要な空白文字を置くことはできません。それぞれの値の書式はその型によって決定されます。
NULL値は、NULL(すべて大文字、引用符なし)、または空のフィールドとして表すことができます。
CHAR、VARCHAR2、NCHAR、NVARCHAR2: 文字列を引用符で囲むことが有効になっている場合(デフォルト)、文字列および文字は二重引用符で囲む必要があります。文字列を引用符で囲むことが無効になっている場合、文字列の中の二重引用符文字はどれも文字列自体の一部であるとみなされます。文字列を引用符で囲むことが有効になっているかどうかにかかわらず、ttBulkCpでは文字列の中の次のバックスラッシュ・エスケープ文字が認識されます。
\"
: 二重引用符文字。文字列を引用符で囲むことが有効になっている場合、文字列のすべての二重引用符文字はバックスラッシュでエスケープされる必要があります。文字列を引用符で囲むことが無効になっている場合、バックスラッシュの使用は許容されますが、必要ではありません。\t
: タブ文字。\n
: 改行文字。\r
: 改行文字。\\
: バックスラッシュ文字。\
xyz(CHARとVARCHAR2のみ): ASCII値がxyzである文字。xyzは、\033
のような3文字の8進数です。u
xyzw(NCHARとNVARCHAR2のみ): Unicode値がxyzwである文字。xyzwは\ufe4a
のような4桁の16進数です。\u
xyzw表記法はUTF-8とASCIIの両方のエンコード・モードでサポートされます。 また、 ~ ! @ # $ % ^ & * ( ) = : ; | < > ? , /
文字のいずれもバックスラッシュでエスケープすることができます。多くの場合、これらの文字をエスケープする必要はありませんが、エスケープすると、文字列を引用符で囲むことが無効になっていても、コメント文字やフィールド・セパレータと解釈されるのを回避できます。
引用符で文字列を囲むことが有効になっている場合、空の文字列(" "
として表される)はNULLと区別されます。引用符で文字列を囲むことが無効になっている場合、NULLと区別できないため、空の文字列を表すことはできません。
Unicode文字列の場合、UTF-8マルチバイト・シーケンスを使用してエンコードされるUnicode文字は、UTF-8エンコード・モードのみでサポートされます。これらのシーケンスがASCIIエンコード・モードで使用された場合、ttBulkCpはシーケンス内の各バイトを別々の文字として解釈します。
固定長のCHARとNCHARフィールドの場合、フィールド長よりも短い文字列は空白で埋められます。VARCHAR2およびNVARCHAR2フィールドの場合、文字列はデータファイルに指定されているとおり正確にTimesTenに入力されます。後続の空白は追加も削除されません。
BINARY、VARBINARY: 文字列を引用符で囲むことが有効になっている場合(デフォルト)、バイナリ値は中括弧({...}
)によって区切られます。文字列を引用符で囲むことが無効になっている場合、中括弧は使用されません。文字列を引用符で囲むことが有効になっているかどうかにかかわらず、バイナリ値はオプションの0x
または0X
で始めることができます。
バイナリ・データの各バイトは、2つの16進数として表されます。たとえば、次のような4バイトのバイナリ文字列があるとします。
01101000 11001010 01001001 11101111
このバイナリ文字列は、次の8文字の16進文字列として表されます。
68CA49EF
AからFの文字によって表される数字は、大文字でも小文字でもかまいません。16進文字列は空白を含むことができません。16進文字列の文字の各対が単一のバイナリ・バイトに変換されるため、16進文字列には偶数の文字が含まれている必要があります。固定長バイナリ・フィールドでは、指定された値が列長よりも短い場合、値の右側に0(ゼロ)が埋め込まれます。バイナリ値の場合、バイナリ値はデータファイルに指定されているとおり正確にTimesTenに挿入されます。
文字列を引用符で囲むことが有効になっている場合、長さが0(ゼロ)のバイナリ値({ }として表される)はNULLと区別されます。文字列を引用符で囲むことが無効になっている場合、NULLと区別できないため、長さが0(ゼロ)のバイナリ値を表すことはできません。
TINYINT、SMALLINT、INTEGER、BIGINT: 整数値は、オプションの符号とその後に続く1つ以上の数字で構成されます。整数値では、E表記法は使用できません。次に例を示します。
-14 98765 +186
REAL、FLOAT、DOUBLE: 浮動小数点値は小数点の有無にかかわらず表すことができ、E表記法を使用することもできます。次に例を示します。
DECIMAL、NUMERIC: 10進値は小数点の有無にかかわらず表すことができます。10進値ではE表記法を使用できません。次に例を示します。
Inf、-InfおよびNaN値: 無限大および数字以外の値は、文字列で表現して対応する定数値を表すことができます(すべて大/小文字は区別されません)。
TimesTenでは、値がNAN、INFおよび-Infとして出力されます。
日付、時刻およびタイムスタンプの値は、固定日時書式を選択するか、カスタムの日時書式を定義することによって指定できます。カスタムの日時書式は、TO_DATEおよびTO_CHAR SQL関数で使用されるものに類似した書式指定子を使用して定義されます。次の表を参照してください。
デフォルトのTimesTenの書式(DF*TF+FF)は日付および時刻書式に関して定義されているため、多くの場合、カスタムの日付または時刻書式が使用されている場合にもタイムスタンプ書式を定義する必要はありません。このため、日付書式を設定すると、日付値の書式のみでなく、タイムスタンプ値の日付部分も設定されます。同様に、タイムスタンプ書式を設定すると、時刻値とタイムスタンプ値の時刻部分の両方が影響を受けます。
日付値の場合、固定書式は次のとおりです。
書式
|
説明
|
---|---|
ODBC |
YYYY-MM-DD 例: 1997-01-03 (デフォルト値) |
Oracle | |
SYBASE1 |
MM/DD/YYYY 例: 01/03/1997 |
SYBASE2 |
DD-MM-YYYY 例: 03-01-1997 |
SYBASE3 |
Mon*DD*YYYY 例: Jan 03 1997 |
時刻値の場合、固定書式はODBCのみです。
タイムスタンプ値の場合、固定書式は次のとおりです。
デフォルトのタイムスタンプ値は、「DF*TF+FF」
です。
次の入力ファイルは、5つの列(2つのCHAR列と、double列、integer列およびvarbinary列を1つずつ)を持つ表のためのものです。Mountain View行には、最後の3つの列にNULL値が存在することに注意してください。
##ttBulkCp
# This is a comment. ###### So is this. # The following line is a blank line. "New York","New York",-345.09,12,{12EF87A4E5} "Milan","Italy",0,0,{0x458F} "Paris","France",1.4E12,NULL,{F009} "Tokyo","Japan",-4.5E-18,26,{0x00} "Mountain View","California",,,
上記の入力ファイルと同等の入力ファイルを次に示します。このファイルでは、引用符が無効、コメント文字が「$」、フィールド・セパレータが「|」です。
##ttBulkCp:QUOTES=0:COMMENTCHAR=$:FSEP=|
$ This is a comment. $$$$$$ So is this. $ The following line is a blank line. New York|New York|-345.09|12|12EF87A4E5 Milan|Italy|0|0|0x458F Paris|France|1.4E12|NULL|F009 Tokyo|Japan|-4.5E-18|26|0x00 Mountain View|California|||
次のコマンドは、表mytbl
の内容をデータ・ストアmystore
からファイルmytbl.dump
にダンプします。
ttBulkCp -o DSN=mystore mytbl mytbl.dump
次のコマンドは、mytbl.dump
ファイルにリストされている行を、データ・ストアmystore
のmytbl
という表にロードします。エラー・メッセージは、mytbl.err
ファイルに格納されます。
ttBulkCp -i -e mytbl.err DSN=mystore mytbl mytbl.dump
前述のコマンドは、最初のエラーの発生後に終了します。入力ファイルの終わりまで(または、致命的エラーが発生するまで)コピーを続行させるには、次のように-m 0
を使用します。
ttBulkCp -i -e mytbl.err -m 0 DSN=mystore mytbl mytbl.dump
制約違反によって発生するエラーを無視するには、-d ignore
を使用します。
ttBulkCp -i -e mytbl.err -d ignore DSN=mystore mytbl mytbl.dump
データ・ストアの不慮の破損を防ぐため、ttBulkCpではOverwriteデータ・ストア属性は明示的に0に設定されます。詳細は、「Overwrite」を参照してください。
浮動小数点数が小さい場合、real、floatまたはdoubleの値は0(ゼロ)に切り捨てられる場合があります。
日付、時刻およびタイムスタンプの書式を設定する場合、入力モードでは不完全または冗長な書式は使用できません。データ型に存在しないフィールド(日付書式の分の指定子など)を参照すると、コピーアウト・モードではエラーを返します。コピーイン・モードでは、それらの指定子の値は無視されます。
ttBulkCpデータファイル内の引用符で囲まれた文字列を無効にする場合は、次の注意事項が適用されます。
UTF-8の場合、NCHARはUTF-8エンコードに変換されてから出力されます。UTF-8入力はNCHARに変換されます。
ASCIIの場合、ASCII文字に対応するNCHAR値はASCIIとして出力されます。ASCII以外のNCHAR値では、エスケープされたUnicode書式が使用されます。
Windowsでは、このユーティリティはすべてのTimesTen Data ManagerとクライアントDSNで使用できます。